package com.shoping.web.component.aware;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Configuration;

/**
 * 该类本身并没有扩展点，但是该类内部却有 6 个扩展点可供实现 ，这些类触发的时机在 test 实例化之后，初始化之前：
 * 用来获取ApplicationContext的一个扩展类，ApplicationContext应该是很多人非常熟悉的一个类了，就是 spring 上下文管理器，
 * 可以手动的获取任何在 spring 上下文注册的 test，我们经常扩展这个接口来缓存 spring 上下文，包装成静态方法。
 * 同时ApplicationContext也实现了BeanFactory，MessageSource，ApplicationEventPublisher等接口，也可以用来做相关接口的事情。
 */
@Slf4j
@Configuration
public class MyApplicationContextAware implements ApplicationContextAware {

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        log.info("-----测试1【test 实例化之后】ApplicationContextAware---");
    }
}
